﻿/*
 * Copyright 2010-2013 Team Robot, Inc.
 * 
 * Author: Peter Coley
 */

using System;
using System.Collections.Generic;
using System.Linq;

namespace TeamRobot.Swtor
{
    public enum SwtorRegion
    {
        US,
        EU,
        Asia,
    }

    public enum ItemCategory : byte
    {
        None,
        Light,
        Medium,
        Heavy,
        Accessory,
        Ranged,
        Melee,
        OffHand,
        Mods,
        Consumable,
        Companion,
    }

    /// <summary>
    /// A list of all unique character slots and mod slots, useful for item searching and the such.  Does not have duplicates for e.g. Relic 1 and 2.
    /// </summary>
    public enum UniqueSlots : byte
    {
        MainHand,
        OffHand,
        Helm,
        Chest,
        Glove,
        Belt,
        Leg,
        Feet,
        SensorUnit,
        Core,
        Motor,
        Part,
        Ears,
        Implant,
        Wrist,
        Relic,
        Customization,
        ColorCrystal,
        Barrel,
        Hilt,
        Armoring,
        Mod,
        Enhancement,
        Augment,
        Consumable
    }

    public enum CharacterSlot : byte
    {
        None = 0,
        MainHand,
        OffHand,
        Belt,
        Chest,
        Ears,
        Feet,
        Glove,
        Helm,
        Implant1,
        Leg,
        Wrist,
        Relic1,
        Implant2,
        Relic2,

        Part1,
        Part2,
        SensorUnit,
        Core1,
        Core2,
        Motor1,
        Motor2,
        Customization,

        Consumable
    }

    public enum ItemSlot : byte
    {
        Belt,
        Ear,
        Helm,
        Chest,
        PrimaryRanged,
        SecondaryRanged,
        EitherRanged,
        CustomRanged,
        Foot,
        Hands,
        Wrist,
        Legs,
        Implant,
        Shield,
        MainHand,
        OffHand,
        EitherHand,
        CustomMelee,
        Relic,

        DroidParts,
        DroidSensor,
        DroidMotor,
        DroidCore,

        //Focus,
        Inventory,
        Quest,
        Upgrade,
        Customization
    }

    public enum WeaponType : byte
    {
        None,
        LightSaber,
        Pistol,
        PoleSaber,
        BlasterRifle,
        VibroKnife,
        VibroSword,
        TrainingSaber,
        ScatterGun,
        AssaultCannon,
        SniperRifle,
        ElectroStaff,
        TechBlade,
        TechStaff
    }

    public enum ArmorType : byte
    {
        None,
        Light,
        Medium,
        Heavy,
        Droid,
    }

    public enum ShieldType : byte
    {
        None,
        Focus,
        Generator,
        ForceShield,
        TechShield,
    }

    public enum ConsumableType : byte
    {
        None,
        Stimpack,
        Adrenal,
        Medpac,
        Food,
        Pvp,
        Other,
    }

    public enum Binding : byte
    {
        OnEquip,
        OnPickup,
        OnLegacy,
    }

    public enum ModTypeEnum : byte
    {
        Barrel,
        Hilt,
        Mod,
        ColorCrystal,
        Enhancement,
        Armoring,
        Augment,
        ColorCartridge,
        COUNT
    }

    public enum ModSlotEnum : byte
    {
        Armoring,
        Augment,
        Barrel,
        ColorCrystal,
        Enhancement,
        Hilt,
        Mod
    }

    public enum Stat : byte
    {
        Strength,
        Endurance,
        Crit,
        Power,
        Defense,
        Accuracy,
        Alacrity,
        Surge,
        Shielding,
        Presence,
        Will,
        Cunning = 12,
        Aim,
        Absorb,
        Expertise,

        Armor,
        MinDamage,
        MaxDamage,
        OffhandMinDamage,
        OffhandMaxDamage,

        TechPower,
        ForcePower,

        STAT_COUNT
    }

    public enum Gender : byte
    {
        NotRequired,
        Female,
        Male
    }

    public enum Quality : byte
    {
        Cheap,
        Standard,
        Premium,
        Prototype,
        Custom, //Note: this is currently populated when the data is loaded 
        Artifact,
        Legendary,
        Legacy,
        Quest
    }

    public enum Class : byte
    {
        None = 0,
        JediKnight = 1,
        Trooper,
        JediConsular,
        Smuggler,
        SithWarrior,
        BountyHunter,
        SithInquisitor,
        ImperialAgent,
    }

    public enum AdvancedClass : byte
    {
        None = 0,
        Guardian = 1, //9 so that it starts after the last Class
        Sentinel,
        Commando,
        Vanguard,
        Sage,
        Shadow,
        Gunslinger,
        Scoundrel,
        Juggernaut,
        Marauder,
        Mercenary,
        Powertech,
        Assassin,
        Sorcerer,
        Operative,
        Sniper,
    }

    public enum Faction
    {
        None,
        Empire,
        Republic,
    }

    public enum Race
    {
        None,
        Chiss,
        Cyborg,
        Human,
        Miraluka,
        Mirialan,
        Rattataki,
        SithPureblood,
        Twilek,
        Zabrak,
    }

    public enum Alignment
    {
        Neutral = 0,
        Dark1 = -1,
        Dark2 = -2,
        Dark3 = -3,
        Dark4 = -4,
        Dark5 = -5,
        Light1 = 1,
        Light2 = 2,
        Light3 = 3,
        Light4 = 4,
        Light5 = 5,
    }

    public enum SocialLevel
    {
        None,
        Social1,
        Social2,
        Social3,
        Social4,
        Social5,
        Social6,
        Social7,
        Social8,
        Social9,
        Social10,
    }

    public enum CrewSkill
    {
        None,
        Archaeology,
        Bioanalysis,
        Scavenging,
        Slicing,
        Armormech,
        Armstech,
        Artifice,
        Biochem,
        Cybertech,
        Synthweaving,
        Diplomacy,
        Investigation,
        TreasureHunting,
        UnderworldTrading,
    }

    public enum Companion
    {
        None,

        // everyone gets this companion on ship
        TwoVr8,

        // jedi knight
        T701,
        Kira,
        Doc,
        Fideltin,
        Scourge,

        // trooper
        Aric,
        Tanno,
        M14x,
        Elara,
        Yuun,

        // jedi consular
        QyzenFess,
        Tharan,
        Zenith,
        Felix,
        Nadia,

        // smuggler
        Corso,
        Bowdaar,
        Risha,
        Akaavi,
        Guss,

        // sith warrior
        Vette,
        Jaesa,
        Malavai,
        Pierce,
        Broonmark,

        // bounty hunter
        Mako,
        Gault,
        Torian,
        Blizz,
        Skadge,

        // sith inquisitor
        KhemVal,
        Andronikos,
        Ashara,
        Talos,
        Xalek,

        // imperial agent
        Kaliyo,
        Vector,
        Eckard,
        Raina,
        Scorpio,

        C2N2,
    }

    public enum ZoneDifficulty
    {
        Normal,
        Hard,
        Nightmare,
    }

    public enum SourceType
    {
        None,
        Flashpoint,
        Operation,
        WeaponVendor,
        ArmorVendor,
        SpecialtyVendor,
        SocialVendor,
        SecurityKeyVendor,
        LightVendor,
        DarkVendor,
        Vendor,
        Commendation,
        Pvp,
        Crafted,
        ModsVendor,
        StarshipUpgradeVendor,
        Ripped,
        GeologistVendor,
        LegacyVendor,
        QuestReward,
        Retired,
        ConstructionKit,
        WorldBoss,
        WorldDrop,
        Trainer,
        ReverseEngineer,
    }

    public enum Buff
    {
        Power,
        Stats,
        Endurance,
        Crit,
    }

    public enum Stance
    {
        None,

        DarkCharge,
        LightningCharge,
        SurgingCharge,

        Soresu,
        ShiiCho,
        Shien,
        Ataru,
        Juyo,

        Combustible,
        Ion,
        HighEnergy,
        CombatSupport,
        HighVelocity,
    }

    public enum CompanionTypes
    {
        Healer,
        MeleeDamage,
        RangedDamage,
        MeleeTank,
        RangedTank,
    }

    public enum LogRankingTypes
    {
        None,
        Dps,
        Hps,
        Speed
    }
}
